home *** CD-ROM | disk | FTP | other *** search
/ Java Primer Plus / Java Primer Plus (Waite Group Proess)(1996).iso / java_Win / demo / MoleculeViewer / Matrix3D.class (.txt) < prev    next >
Encoding:
Java Class File  |  1995-12-01  |  3.6 KB  |  207 lines

  1. class Matrix3D {
  2.    // $FF: renamed from: xx float
  3.    float field_0 = 1.0F;
  4.    // $FF: renamed from: xy float
  5.    float field_1;
  6.    // $FF: renamed from: xz float
  7.    float field_2;
  8.    // $FF: renamed from: xo float
  9.    float field_3;
  10.    // $FF: renamed from: yx float
  11.    float field_4;
  12.    // $FF: renamed from: yy float
  13.    float field_5 = 1.0F;
  14.    // $FF: renamed from: yz float
  15.    float field_6;
  16.    // $FF: renamed from: yo float
  17.    float field_7;
  18.    // $FF: renamed from: zx float
  19.    float field_8;
  20.    // $FF: renamed from: zy float
  21.    float field_9;
  22.    // $FF: renamed from: zz float
  23.    float field_10 = 1.0F;
  24.    // $FF: renamed from: zo float
  25.    float field_11;
  26.    // $FF: renamed from: pi double
  27.    static final double field_12 = 3.14159265;
  28.  
  29.    void scale(float var1) {
  30.       this.field_0 *= var1;
  31.       this.field_1 *= var1;
  32.       this.field_2 *= var1;
  33.       this.field_3 *= var1;
  34.       this.field_4 *= var1;
  35.       this.field_5 *= var1;
  36.       this.field_6 *= var1;
  37.       this.field_7 *= var1;
  38.       this.field_8 *= var1;
  39.       this.field_9 *= var1;
  40.       this.field_10 *= var1;
  41.       this.field_11 *= var1;
  42.    }
  43.  
  44.    void scale(float var1, float var2, float var3) {
  45.       this.field_0 *= var1;
  46.       this.field_1 *= var1;
  47.       this.field_2 *= var1;
  48.       this.field_3 *= var1;
  49.       this.field_4 *= var2;
  50.       this.field_5 *= var2;
  51.       this.field_6 *= var2;
  52.       this.field_7 *= var2;
  53.       this.field_8 *= var3;
  54.       this.field_9 *= var3;
  55.       this.field_10 *= var3;
  56.       this.field_11 *= var3;
  57.    }
  58.  
  59.    void translate(float var1, float var2, float var3) {
  60.       this.field_3 += var1;
  61.       this.field_7 += var2;
  62.       this.field_11 += var3;
  63.    }
  64.  
  65.    void yrot(double var1) {
  66.       var1 *= 0.017453292500000002;
  67.       double var3 = Math.cos(var1);
  68.       double var5 = Math.sin(var1);
  69.       float var7 = (float)((double)this.field_0 * var3 + (double)this.field_8 * var5);
  70.       float var8 = (float)((double)this.field_1 * var3 + (double)this.field_9 * var5);
  71.       float var9 = (float)((double)this.field_2 * var3 + (double)this.field_10 * var5);
  72.       float var10 = (float)((double)this.field_3 * var3 + (double)this.field_11 * var5);
  73.       float var11 = (float)((double)this.field_8 * var3 - (double)this.field_0 * var5);
  74.       float var12 = (float)((double)this.field_9 * var3 - (double)this.field_1 * var5);
  75.       float var13 = (float)((double)this.field_10 * var3 - (double)this.field_2 * var5);
  76.       float var14 = (float)((double)this.field_11 * var3 - (double)this.field_3 * var5);
  77.       this.field_3 = var10;
  78.       this.field_0 = var7;
  79.       this.field_1 = var8;
  80.       this.field_2 = var9;
  81.       this.field_11 = var14;
  82.       this.field_8 = var11;
  83.       this.field_9 = var12;
  84.       this.field_10 = var13;
  85.    }
  86.  
  87.    void xrot(double var1) {
  88.       var1 *= 0.017453292500000002;
  89.       double var3 = Math.cos(var1);
  90.       double var5 = Math.sin(var1);
  91.       float var7 = (float)((double)this.field_4 * var3 + (double)this.field_8 * var5);
  92.       float var8 = (float)((double)this.field_5 * var3 + (double)this.field_9 * var5);
  93.       float var9 = (float)((double)this.field_6 * var3 + (double)this.field_10 * var5);
  94.       float var10 = (float)((double)this.field_7 * var3 + (double)this.field_11 * var5);
  95.       float var11 = (float)((double)this.field_8 * var3 - (double)this.field_4 * var5);
  96.       float var12 = (float)((double)this.field_9 * var3 - (double)this.field_5 * var5);
  97.       float var13 = (float)((double)this.field_10 * var3 - (double)this.field_6 * var5);
  98.       float var14 = (float)((double)this.field_11 * var3 - (double)this.field_7 * var5);
  99.       this.field_7 = var10;
  100.       this.field_4 = var7;
  101.       this.field_5 = var8;
  102.       this.field_6 = var9;
  103.       this.field_11 = var14;
  104.       this.field_8 = var11;
  105.       this.field_9 = var12;
  106.       this.field_10 = var13;
  107.    }
  108.  
  109.    void zrot(double var1) {
  110.       var1 *= 0.017453292500000002;
  111.       double var3 = Math.cos(var1);
  112.       double var5 = Math.sin(var1);
  113.       float var7 = (float)((double)this.field_4 * var3 + (double)this.field_0 * var5);
  114.       float var8 = (float)((double)this.field_5 * var3 + (double)this.field_1 * var5);
  115.       float var9 = (float)((double)this.field_6 * var3 + (double)this.field_2 * var5);
  116.       float var10 = (float)((double)this.field_7 * var3 + (double)this.field_3 * var5);
  117.       float var11 = (float)((double)this.field_0 * var3 - (double)this.field_4 * var5);
  118.       float var12 = (float)((double)this.field_1 * var3 - (double)this.field_5 * var5);
  119.       float var13 = (float)((double)this.field_2 * var3 - (double)this.field_6 * var5);
  120.       float var14 = (float)((double)this.field_3 * var3 - (double)this.field_7 * var5);
  121.       this.field_7 = var10;
  122.       this.field_4 = var7;
  123.       this.field_5 = var8;
  124.       this.field_6 = var9;
  125.       this.field_3 = var14;
  126.       this.field_0 = var11;
  127.       this.field_1 = var12;
  128.       this.field_2 = var13;
  129.    }
  130.  
  131.    void mult(Matrix3D var1) {
  132.       float var2 = this.field_0 * var1.field_0 + this.field_4 * var1.field_1 + this.field_8 * var1.field_2;
  133.       float var3 = this.field_1 * var1.field_0 + this.field_5 * var1.field_1 + this.field_9 * var1.field_2;
  134.       float var4 = this.field_2 * var1.field_0 + this.field_6 * var1.field_1 + this.field_10 * var1.field_2;
  135.       float var5 = this.field_3 * var1.field_0 + this.field_7 * var1.field_1 + this.field_11 * var1.field_2 + var1.field_3;
  136.       float var6 = this.field_0 * var1.field_4 + this.field_4 * var1.field_5 + this.field_8 * var1.field_6;
  137.       float var7 = this.field_1 * var1.field_4 + this.field_5 * var1.field_5 + this.field_9 * var1.field_6;
  138.       float var8 = this.field_2 * var1.field_4 + this.field_6 * var1.field_5 + this.field_10 * var1.field_6;
  139.       float var9 = this.field_3 * var1.field_4 + this.field_7 * var1.field_5 + this.field_11 * var1.field_6 + var1.field_7;
  140.       float var10 = this.field_0 * var1.field_8 + this.field_4 * var1.field_9 + this.field_8 * var1.field_10;
  141.       float var11 = this.field_1 * var1.field_8 + this.field_5 * var1.field_9 + this.field_9 * var1.field_10;
  142.       float var12 = this.field_2 * var1.field_8 + this.field_6 * var1.field_9 + this.field_10 * var1.field_10;
  143.       float var13 = this.field_3 * var1.field_8 + this.field_7 * var1.field_9 + this.field_11 * var1.field_10 + var1.field_11;
  144.       this.field_0 = var2;
  145.       this.field_1 = var3;
  146.       this.field_2 = var4;
  147.       this.field_3 = var5;
  148.       this.field_4 = var6;
  149.       this.field_5 = var7;
  150.       this.field_6 = var8;
  151.       this.field_7 = var9;
  152.       this.field_8 = var10;
  153.       this.field_9 = var11;
  154.       this.field_10 = var12;
  155.       this.field_11 = var13;
  156.    }
  157.  
  158.    void unit() {
  159.       this.field_3 = 0.0F;
  160.       this.field_0 = 1.0F;
  161.       this.field_1 = 0.0F;
  162.       this.field_2 = 0.0F;
  163.       this.field_7 = 0.0F;
  164.       this.field_4 = 0.0F;
  165.       this.field_5 = 1.0F;
  166.       this.field_6 = 0.0F;
  167.       this.field_11 = 0.0F;
  168.       this.field_8 = 0.0F;
  169.       this.field_9 = 0.0F;
  170.       this.field_10 = 1.0F;
  171.    }
  172.  
  173.    void transform(float[] var1, int[] var2, int var3) {
  174.       float var4 = this.field_0;
  175.       float var5 = this.field_1;
  176.       float var6 = this.field_2;
  177.       float var7 = this.field_3;
  178.       float var8 = this.field_4;
  179.       float var9 = this.field_5;
  180.       float var10 = this.field_6;
  181.       float var11 = this.field_7;
  182.       float var12 = this.field_8;
  183.       float var13 = this.field_9;
  184.       float var14 = this.field_10;
  185.       float var15 = this.field_11;
  186.       int var16 = var3 * 3;
  187.  
  188.       while(true) {
  189.          var16 -= 3;
  190.          if (var16 < 0) {
  191.             return;
  192.          }
  193.  
  194.          float var17 = var1[var16];
  195.          float var18 = var1[var16 + 1];
  196.          float var19 = var1[var16 + 2];
  197.          var2[var16] = (int)(var17 * var4 + var18 * var5 + var19 * var6 + var7);
  198.          var2[var16 + 1] = (int)(var17 * var8 + var18 * var9 + var19 * var10 + var11);
  199.          var2[var16 + 2] = (int)(var17 * var12 + var18 * var13 + var19 * var14 + var15);
  200.       }
  201.    }
  202.  
  203.    public String toString() {
  204.       return "[" + this.field_3 + "," + this.field_0 + "," + this.field_1 + "," + this.field_2 + ";" + this.field_7 + "," + this.field_4 + "," + this.field_5 + "," + this.field_6 + ";" + this.field_11 + "," + this.field_8 + "," + this.field_9 + "," + this.field_10 + "]";
  205.    }
  206. }
  207.